#pragma once
#ifndef PDF_INPUT_FILE_ITERATOR_HPP
#define PDF_INPUT_FILE_ITERATOR_HPP
#include "InputFile.hpp"
#include <iterator>

namespace Pdf
{
	class InputFileIterator : public std::iterator<std::input_iterator_tag, char>
	{
	public:
							InputFileIterator(InputFile & input);
							InputFileIterator(InputFileIterator const & other);
						   ~InputFileIterator();

		InputFileIterator &	operator =  (InputFileIterator const & other);
		InputFileIterator & operator ++ ();
		InputFileIterator	operator ++ (int);
		bool				operator == (InputFileIterator const & other) const;
		bool				operator != (InputFileIterator const & other) const;
		char const &		operator *  () const;
		char const *		operator -> () const;

	private:
		InputFile &	m_input;
		char		m_value;
	};
}

#endif // PDF_INPUT_FILE_ITERATOR_HPP
